package txartelak;

import java.util.*;
import java.io.*;

public class TxKudZerSerial implements TxartelenKudeatzailea {
	private static Vector txartelak;

	private static int txartelKop;

	private static final String fitxIzena = "txartelak.ser";

	public TxKudZerSerial() {
		try {
			irakurri();
		} catch (Exception e) {
			System.out.println("Error:" + e.toString());
		}
	}

	public void txartelenTaulaSortu() {
//		hasieratu(10);
//		for (int i=0;i<txartelKop;i++)
//			txartelak.addElement("");
//		
//		System.out.println("Ados! " + txartelKop + " txartel libre sortu ditut");
	}

	public void hasieratu(int txartelKop) {
		txartelak = new Vector();
		this.txartelKop = txartelKop;
	}

	// ...

	public int getTxartela(String izen) {
		try {
			if (txartelKop > 0) {
				txartelak.addElement(izen);
				txartelKop--;
				idatzi();
				return txartelKop;
			} else
				return -1;
		} catch (Exception e) {
			System.out.println("Error:" + e.toString());
		}
		return -2;
	}

	// ...
	public static void idatzi() throws IOException {
		ObjectOutputStream irt = new ObjectOutputStream(new FileOutputStream(
				fitxIzena));
		irt.writeObject(txartelak);
		irt.writeObject(new Integer(txartelKop));
	}

	public static void irakurri() {
		
		ObjectInputStream sar;
		try {
			sar = new ObjectInputStream(new FileInputStream(fitxIzena));
			txartelak = (Vector) sar.readObject();
			txartelKop = ((Integer) sar.readObject()).intValue();
		} catch (FileNotFoundException e) {
			System.out.println("Kontuz!: ez dut serializazioaren fitxategia aurkitu...");
		} catch (IOException e) {
			System.out.println("Kontuz!: fitxategia hutsik dago...");
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
}